---
title: clsLegalPersonManager
summary: API reference for clsLegalPersonManager.
status: draft
owner: SAIF Claims BOF team
last_reviewed: 2026-08-21
library: SAIF.Application.Claim.Legal
reference_type: embedded
---

# clsLegalPersonManager

`clsLegalPersonManager` maintains legal persons and other-firm reference records: inserting/deleting persons, person types, and firms, and preventing deletion of a person currently referenced elsewhere. Like `clsHearingLocationManager`, it caches code-list lookups to reduce Oracle round trips for largely static reference data. It inherits `LegalManagerBase` (this library) → `ClaimAppManager` (`SAIF.Application.Claim`).

## Purpose
- Maintain legal person and other-firm reference records: insert/delete person, person type, and firm.
- Enforce that a legal person cannot be deleted while still in use, delegating the in-use check to the business layer ([Business rules](../../business-rules.md)).
- Cache legal-person/firm code-list lookups in-process to reduce Oracle round trips.

## Context
- Namespace: `SAIF.Application.Claim.Legal`
- Assembly/package: `SAIF.Application.Claim.Legal.dll` (embedded library, referenced by the `Legal` web front end)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `New(inDatabase, inSecurityPrincipal)` | `Public Sub New(inDatabase As String, inSecurityPrincipal As clsSecurityPrincipal)` | Constructs the manager for the given database context and authenticated principal, calling into `LegalManagerBase.New`. |
| `LegalPersonCol` | `Public ReadOnly Property LegalPersonCol As clsLegalPersonCollection`* | Exposes the legal-person collection backing the maintenance grid. |
| `InsertPerson()` | `Public Sub InsertPerson()`* | Adds a new legal-person record to `LegalPersonCol` for subsequent editing and save. |
| `DeletePerson()` | `Public Sub DeletePerson()` | Deletes the selected legal person, blocking the operation with `"Error: This person is in use, and cannot be deleted."` when `clsLegalPerson.CanDeleteLegalPerson` reports the person is still in use ([Business rules](../../business-rules.md)). |
| `OtherFirmCol` | `Public ReadOnly Property OtherFirmCol As clsOtherFirmCollection`* | Exposes the other-firm collection backing the firm maintenance grid. |
| `Save()` | `Public Overrides Function Save() As Boolean`* | Persists pending legal-person/firm inserts/edits via the inherited `clsBusinessBase.Save()` dispatch path. |

## Behavioral notes
- `DeletePerson()` delegates the in-use determination to `clsLegalPerson.CanDeleteLegalPerson` in the referenced `SAIF.Business.Claim.Legal` library rather than checking usage locally ([Business rules](../../business-rules.md)).
- Code-list lookups cached by this manager reduce repeated Oracle round trips for largely static person/firm reference data*.

## Constraints and usage notes
- Deletion of a person or firm still referenced by case data is blocked at the manager layer using a business-layer-reported in-use flag, not a database foreign-key error surfaced to the user*.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `SAIF.Application.Claim.Legal\clsLegalPersonManager.vb`
